﻿using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.Service.Validation;
using Sinacor.Infra.Service.Common;

namespace Sinacor.Servico.Bovespa.Corretagem.BusinessEntity
{
    /// <summary>
    /// Entidade de negocio TipoDescontoDiferenciado
    /// </summary>
    public class TipoDescontoDiferenciado : BaseBusinessEntity
    {
    	#region Atributos
        private const int RSCODIGO = 109568;
        private const int RSDESCRICAO = 109571;
        #endregion Atributos
        
        #region Campos

        /// <summary>
        /// Campo _descricao
        /// </summary>
        private string _descricao;

        /// <summary>
        /// Campo _obrigatorio
        /// </summary>
        private bool? _obrigatorio;

        /// <summary>
        /// Campo _codigo
        /// </summary>
        private int? _codigo;

        #endregion

        #region Construtores

        /// <summary>
        /// Construtor TipoDescontoDiferenciado
        /// </summary>
        public TipoDescontoDiferenciado()
        {

        }

        /// <summary>
        /// Construtor TipoDescontoDiferenciado
        /// </summary>
        /// <param name="descricao">Descrição</param>
        /// <param name="obrigatorio">Obrigatório</param>
        /// <param name="codigo">Código</param>
        public TipoDescontoDiferenciado(string descricao, bool obrigatorio, int codigo)
        {
            this._descricao = descricao;
            this._obrigatorio = obrigatorio;
            this._codigo = codigo;
        }

        #endregion

        #region Propriedades

        /// <summary>
        /// Propriedade Descricao
        /// </summary>
        [NotNull(RSDESCRICAO)]
        public string Descricao
        {
            get { return this._descricao; }
            set { this._descricao = value; }
        }

        /// <summary>
        /// Propriedade Obrigatorio
        /// </summary>
        public bool? Obrigatorio
        {
            get { return this._obrigatorio; }
            set { this._obrigatorio = value; }
        }

        /// <summary>
        /// Propriedade Codigo
        /// </summary>
        [NotNull(RSCODIGO)]
        public int? Codigo
        {
            get { return this._codigo; }
            set { this._codigo = value; }
        }

        #endregion
    }
}

